﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Csla;
using log4net;

namespace Sireass.Bl
{
	[Serializable]
	public class PrestadorCriteria : CriteriaBase<PrestadorCriteria>
	{
		#region Properties
		public static readonly PropertyInfo<long?> IdPrestadorProperty = RegisterProperty<long?>(c => c.IdPrestador);
		public long? IdPrestador
		{
			get { return ReadProperty(IdPrestadorProperty); }
			private set { LoadProperty(IdPrestadorProperty, value); }
		}
		public static readonly PropertyInfo<long?> IdPersonaProperty = RegisterProperty<long?>(c => c.IdPersona);
		public long? IdPersona
		{
			get { return ReadProperty(IdPersonaProperty); }
			private set { LoadProperty(IdPersonaProperty, value); }
		}
		public static readonly PropertyInfo<long?> IdEscuelaProperty = RegisterProperty<long?>(c => c.IdEscuela);
		public long? IdEscuela
		{
			get { return ReadProperty(IdEscuelaProperty); }
			private set { LoadProperty(IdEscuelaProperty, value); }
		}
		public static readonly PropertyInfo<long?> IdCarreraProperty = RegisterProperty<long?>(c => c.IdCarrera);
		public long? IdCarrera
		{
			get { return ReadProperty(IdCarreraProperty); }
			private set { LoadProperty(IdCarreraProperty, value); }
		}
		public static readonly PropertyInfo<byte?> IdEstatusPrestadorProperty = RegisterProperty<byte?>(c => c.IdEstatusPrestador);
		public byte? IdEstatusPrestador
		{
			get { return ReadProperty(IdEstatusPrestadorProperty); }
			private set { LoadProperty(IdEstatusPrestadorProperty, value); }
		}
		public static readonly PropertyInfo<string> NumeroCuentaProperty = RegisterProperty<string>(c => c.NumeroCuenta);
		public string NumeroCuenta
		{
			get { return ReadProperty(NumeroCuentaProperty); }
			private set { LoadProperty(NumeroCuentaProperty, value); }
		}
		public static readonly PropertyInfo<bool?> HabilitadoProperty = RegisterProperty<bool?>(c => c.Habilitado);
		public bool? Habilitado
		{
			get { return ReadProperty(HabilitadoProperty); }
			private set { LoadProperty(HabilitadoProperty, value); }
		}
		public static readonly PropertyInfo<DateTime?> FechaAltaProperty = RegisterProperty<DateTime?>(c => c.FechaAlta);
		public DateTime? FechaAlta
		{
			get { return ReadProperty(FechaAltaProperty); }
			private set { LoadProperty(FechaAltaProperty, value); }
		}
		public static readonly PropertyInfo<DateTime?> FechaBajaProperty = RegisterProperty<DateTime?>(c => c.FechaBaja);
		public DateTime? FechaBaja
		{
			get { return ReadProperty(FechaBajaProperty); }
			private set { LoadProperty(FechaBajaProperty, value); }
		}
		#endregion

		#region Factory
		public PrestadorCriteria(long? idPrestador, long? idPersona, long? idEscuela, long? idCarrera, byte? idEstatusPrestador,
									string numeroCuenta, bool? habilitado, DateTime? fechaAlta, DateTime? fechaBaja)
		{
			IdPrestador = idPrestador;
			IdPersona = idPersona;
			IdEscuela = idEscuela;
			IdCarrera = idCarrera;
			IdEstatusPrestador = idEstatusPrestador;
			NumeroCuenta = numeroCuenta;
			Habilitado = habilitado;
			FechaAlta = fechaAlta;
			FechaBaja = fechaBaja;
		}
		#endregion
	}
}
